#include <iostream>
#include "json/json.h"
#include "json/parser.h"
#include <fstream>
#include <sstream>
using namespace std;
using namespace yazi::json;

int main() {
//    std::cout << "Hello, World!" << std::endl;
//
//    Json v1;
//    Json v2 = true;
//    Json v3 = 123;
//    int i = v3;
//

//    Json arr; // 执行 Json::Json() : m_type(json_null)
//    arr[0] = true;  // 1: 将true转换为了Json对象(调用)Json::Json() : m_type(json_null)
//                    // 2: 执行[] Json & Json::operator [] (int index) 重载将arr改为vector/list,并新增一个Json空白对象
//                    // 3:执行拷贝构造
//
//   cout << "end" << endl;
//   arr[1] = 123;
//   for (auto it=arr.begin();it != arr.end();it++)
//   {
//       cout << (*it).str() << endl;
//   }
//
//    arr.append(1.23);
//    arr.append("hello word");
//
//    bool b = arr[0];
//    int a = arr[1];
//    double f = arr[2];
//    const string & s = arr[3];
//
//    std::cout << arr.str() << endl;

//    Json obj;
//    obj["bool"] = true;
//    obj["int"] = 123;
//    obj["double"] = 1.23;
//    obj["str"] = "hello word";
//    std::cout << obj.str() << endl;

//    const string & str = "[1,2,3,1.22,\"hello\", true, false, null]";
//    const string & str = "{\"a\":1}";
    ifstream fin("./main.json");
    cout<< fin.fail()<<endl;
    stringstream ss;
    ss << fin.rdbuf();
//
    const string & str = ss.str();
//
    Json v;
    v.parse(str);
    cout << v.str() << endl;
    return 0;
}
